
public class TestMain {

	public static void main(String Args[]){
		M faits = Outils.chargerFaits("faits.txt");
		//M faits2 = Outils.chargerFaits("faits.txt");
		M regles = Outils.chargerRegles("regles.txt");

		faits.listerMatrice();
		System.out.println(faits.toString());

		regles.listerMatrice();
		System.out.println(regles.toString());

		System.out.println(D.getInstance().toString());

		XYZT xyzt = new XYZT();

		int r = -1;
		//parcourt des rege r
		for(int j=0; j<regles.sizeC(); j++)
		{
			if(r != regles.get(j, 0))
			{
				r = regles.get(j, 0);
				System.out.println("regle ::"+D.getInstance().decode(r));
				
				System.out.println("matrice de condition de la regle ::"+D.getInstance().decode(r));
				M extraitRegleCondition = xyzt.extraireCondition(regles,r);
				extraitRegleCondition.listerMatrice();
				
				System.out.println("matrice de conclusion de la regle ::"+D.getInstance().decode(r));
				M extraitRegleConclusion = xyzt.extraireConclusion(regles,r);
				extraitRegleConclusion.listerMatrice();

				for(int i=0; i<extraitRegleCondition.sizeC(); i++)
				{ 	
					M extraitFait = xyzt.extraire(faits,extraitRegleCondition.getvecL(i).get(1));
					xyzt.condition(extraitFait,extraitRegleCondition.getvecL(i));
					System.out.println("matrice d'extraction des faits de la regle ::"+D.getInstance().decode(r));
					extraitFait.listerMatrice();
				}
				System.out.println("matrice xyzt de la regle ::"+D.getInstance().decode(r));
				xyzt.getMatrice().listerMatrice();
				System.out.println("vecteur xyzt de la regle ::"+D.getInstance().decode(r));
				xyzt.getVecteur().lister();

				for(int i=0; i<extraitRegleConclusion.sizeC(); i++)
				{
					M mat = xyzt.conclusion(extraitRegleConclusion.getvecL(i));
					mat.listerMatrice();
					faits.add_Mat_L(mat);
				}
				System.out.println("nouvel base des faits apres ::"+D.getInstance().decode(r));
				faits.listerMatrice();
				xyzt.Clear();
			}
		}




	}
}
